#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

//int main()
//{
//    float money = 0;
//    int month = 0;
//    int day = 0;
//    int flag = 0;
//
//
//    scanf("%f %d %d %d", &money, &month, &day, &flag);
//
//
//    float discount = 0;
//
//
//    if (month == 11 && day == 11)
//    {
//        if (flag == 1)
//        {
//            discount = money * 0.7 - 50;
//        }
//        else
//        {
//            discount = money * 0.7;
//        }
//    }
//    else if (month == 12 && day == 12)
//    {
//        if (flag == 1)
//        {
//            discount = money * 0.8 - 50;
//        }
//        else
//        {
//            discount = money * 0.8;
//        }
//    }
//    else
//    {
//        discount = money;
//    }
//
//
//    if (discount < 0)
//    {
//        printf("0.00\n");
//    }
//    else
//    {
//        printf("%.2f\n", discount);
//    }
//}

//int main()
//{
//    int year = 0;
//    int month = 0;
//    while (scanf("%d %d", &year, &month) != EOF)
//    {
//        int arr[13] = { 0, 31, 28, 31, 30, 31, 30,
//                       31, 31, 30, 31, 30, 31 };
//
//
//        if (year % 4 == 0 && year % 10 != 0 || year % 400 == 0)
//        {
//            if (month == 2)
//            {
//                printf("%d\n", arr[2] + 1);
//            }
//            else
//            {
//                printf("%d\n", arr[month]);
//            }
//        }
//        else
//        {
//            printf("%d\n", arr[month]);
//        }
//
//
//    }
//    return 0;
//}

//int main()
//{
//    int n = 0;
//    scanf("%d", &n);
//
//
//    int arr[n];
//
//
//    int i = 0;
//    for (i = 0; i < n; i++)
//    {
//        scanf("%d", &arr[i]);
//    }
//
//
//    int num = 0;
//    scanf("%d", &num);
//
//
//    for (i = 0; i < n; i++)
//    {
//        if (arr[i] == num)
//        {
//            for (int j = i; j < n - 1; j++)
//            {
//                arr[j] = arr[j + 1];
//            }
//            i--;
//            n--;
//        }
//    }
//
//
//    for (i = 0; i < n; i++)
//    {
//        printf("%d ", arr[i]);
//    }
//
//
//    return 0;
//}

//int main()
//{
//    int n = 0;
//    int m = 0;
//    scanf("%d %d", &n, &m);
//    int arr1[n][m];
//    int arr2[n][m];
//    int i = 0;
//    int j = 0;
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            scanf("%d", &arr1[i][j]);
//        }
//    }
//
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            scanf("%d", &arr2[i][j]);
//        }
//    }
//    int flag = 0;
//
//
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            if (arr1[i][j] != arr2[i][j])
//            {
//                printf("No\n");
//                flag = 1;
//                break;
//            }
//        }
//        if (flag == 1)
//        {
//            break;
//        }
//    }
//
//
//    if (flag == 0)
//    {
//        printf("Yes\n");
//    }
//
//
//
//    return 0;
//}


/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


//struct ListNode* deleteDuplicates(struct ListNode* head)
//{
//    struct ListNode* cur;
//    struct ListNode* next;
//
//    if (head == NULL)
//    {
//        return head;
//    }
//
//    cur = head;
//    next = head->next;
//
//    while (next != NULL)
//    {
//        if (cur->val == next->val)
//        {
//            next = next->next;
//            free(cur->next);
//            cur->next = next;
//        }
//        else
//        {
//            cur = cur->next;
//            next = next->next;
//        }
//    }
//    return head;
//}

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */


 /**
  * Note: The returned array must be malloced, assume caller calls free().
  */

//int size(struct TreeNode* root)
//{
//    if (root == NULL)
//    {
//        return 0;
//    }
//
//    return 1 + size(root->left) + size(root->right);
//}
//
//void _inorderTraversal(struct TreeNode* root, int* arr, int* i)
//{
//    if (root == NULL)
//    {
//        return;
//    }
//
//    _inorderTraversal(root->left, arr, i);
//    arr[(*i)++] = root->val;
//    _inorderTraversal(root->right, arr, i);
//}
//
//int* inorderTraversal(struct TreeNode* root, int* returnSize)
//{
//    int TreeSize = size(root);
//
//    int* arr = (int*)malloc(sizeof(int) * TreeSize);
//
//    int i = 0;
//    _inorderTraversal(root, arr, &i);
//
//    *returnSize = TreeSize;
//    return arr;
//}

